이 명령어 집합 아키텍처 (ISA) 기본적인 추상화 수준 소프트웨어와 하드웨어 간의 공식적 계약 역할을 합니다. 고급 언어(예: C)는 복잡성을 숨기지만, ISA는 아키텍처 상태—프로세서의 레지스터 및 메모리 정확한 구성 정보를 노출합니다.
1. 아키텍처 상태
x86-64 CPU는 몇 가지 핵심 구성 요소를 통해 자신의 상태를 정의합니다:
- 프로그램 카운터 (%rip): 다음 명령어의 주소를 저장합니다.
- 정수 레지스터 파일: 16개의 일반 목적 레지스터 (예:
%rax,%rbx)는 64비트 값을 저장합니다. - 조건 코드: 제어 흐름용 플래그 (ZF, SF, CF, OF).
- 벡터 레지스터: 예를 들어 YMM 레지스터 (256비트)는 SIMD 연산에 사용됩니다.
2. 메모리 추상화
기계어는 메모리를 거대한 바이트 주소 지정 배열. x86-64은 64비트 가상 주소를 지원하지만, 현재 구현에서는 종종 48비트 주소 공간 ($2^{48}$ 바이트)을 사용합니다. 데이터 크기를 워드 (16비트), 더블 워드 (32비트), 그리고 쿼드 워드 (64비트)로 분류합니다.
3. 진화와 호환성
모어의 법칙에 의해 모어의 법칙영향을 받아 인텔은 8086 에서 코어 i7 해슬웰까지 진화했습니다. ISA는 후방 호환성을 보장하여 오래된 기계어 코드가 현대의 다중 코어, 하이퍼스레딩 하드웨어에서도 실행될 수 있도록 합니다.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>